home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 52 / Amiga Format AFCD52 (Issue 136, May 2000).iso / -serious- / programming / other / dopus412-gpl / program / screendata.h < prev    next >
C/C++ Source or Header  |  2000-02-28  |  12KB  |  262 lines

  1. /*
  2.  
  3. Directory Opus 4
  4. Original GPL release version 4.12
  5. Copyright 1993-2000 Jonathan Potter
  6.  
  7. This program is free software; you can redistribute it and/or
  8. modify it under the terms of the GNU General Public License
  9. as published by the Free Software Foundation; either version 2
  10. of the License, or (at your option) any later version.
  11.  
  12. This program is distributed in the hope that it will be useful,
  13. but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15. GNU General Public License for more details.
  16.  
  17. You should have received a copy of the GNU General Public License
  18. along with this program; if not, write to the Free Software
  19. Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  20.  
  21. All users of Directory Opus 4 (including versions distributed
  22. under the GPL) are entitled to upgrade to the latest version of
  23. Directory Opus version 5 at a reduced price. Please see
  24. http://www.gpsoft.com.au for more information.
  25.  
  26. The release of Directory Opus 4 under the GPL in NO WAY affects
  27. the existing commercial status of Directory Opus 5.
  28.  
  29. */
  30.  
  31. #ifndef DOPUS_SCREEN_DATA
  32. #define DOPUS_SCREEN_DATA
  33.  
  34. /* Definitions of any data that relates to the Screen display. Includes
  35.    TextAttrs, NewScreen structures and TagItems, and various global data */
  36.  
  37. #include "dopus.h"
  38.  
  39. /* TextAttr structures */
  40.  
  41. extern struct TextAttr
  42.     main_screen_attr,                              /* Main screen font */
  43.     screen_attr,                                   /* General screen font */
  44.     menu_attr;                                     /* Menu font */
  45.  
  46. /* Screen tag lists */
  47.  
  48. extern UWORD scr_drawinfo[NUMDRIPENS+1];         /* Pen lists */
  49.  
  50. extern struct TagItem
  51.     mainscreen_tags[],                             /* Tags for the main screen */
  52.     stdscreen_tags[],                              /* Tags for a standard HIRES screen */
  53.     mainwindow_tags[];                             /* Tags for the main window */
  54.  
  55. /* NewScreen structures */
  56.  
  57. extern struct ExtNewScreen
  58.     main_scr,                                      /* Main screen */
  59.     font_scr,                                      /* Font screen */
  60.     blank_scr;                                     /* Blank screen */
  61.  
  62. /* NewWindow structures */
  63.  
  64. extern struct ExtNewWindow
  65.     main_win;                                      /* Main window */
  66.  
  67. extern struct NewWindow
  68.     font_win,                                      /* Font window */
  69.     disk_win;                                      /* DiskInfo window */
  70.  
  71. extern struct NewWindow icon_win;                /* Iconified window */
  72.  
  73. extern struct AppWindow *dopus_appwindow;        /* AppWindow when on Workbench screen */
  74.  
  75. /* Definitions for the custom menus */
  76.  
  77. extern struct Menu menu_menus[5];                /* Custom menus */
  78. extern struct MenuItem  *menu_menuitem;          /* Custom menu items */
  79. extern struct IntuiText *menu_intuitext;         /* IntuiText for custom menu items */
  80.  
  81. extern char *menu_itemnames;                     /* Names of the menu items */
  82. extern char menu_spaceitemnames[5][80];          /* Space background of menu items */
  83.  
  84. extern UBYTE menu_real_number[5];                /* The real ordinal number of each menu */
  85.  
  86. /* Internal Screen Data */
  87.  
  88. extern struct ColourTable screen_pens[16];       /* Colour pen table */
  89.  
  90. extern USHORT scrdata_norm_width;                /* Normal width of the display */
  91. extern USHORT scrdata_norm_height;               /* Normal height of the display */
  92. extern USHORT scrdata_scr_height;                /* Main screen/window height */
  93.  
  94. extern USHORT scrdata_dispwin_lines;             /* Number of lines in each window */
  95. extern USHORT scrdata_dispwin_width[2];          /* Displayed width in each window */
  96. extern USHORT scrdata_dispwin_height;            /* Height of directory windows */
  97. extern USHORT scrdata_dispwin_nchars[2];         /* Width of each window in characters */
  98. extern USHORT scrdata_dispwin_ypos;              /* Y-Position of directory windows */
  99. extern USHORT scrdata_dispwin_left[2];           /* Left edge of directory windows */
  100. extern USHORT scrdata_dispwin_xpos[2];           /* Left edge of text in windows */
  101. extern USHORT scrdata_dispwin_center;            /* Center of the two windows */
  102.  
  103. extern USHORT scrdata_dirwin_xpos[2];            /* Rendered X-Position of each window */
  104. extern USHORT scrdata_dirwin_ypos[2];            /* Rendered Y-Position of each window */
  105. extern USHORT scrdata_dirwin_width[2];           /* Rendered width of each window */
  106. extern USHORT scrdata_dirwin_height;             /* Rendered height of directory windows */
  107. extern USHORT scrdata_dirwin_bottom;             /* Rendered bottom of each window */
  108. extern USHORT scrdata_dirwin_center;             /* Rendered center of the two windows */
  109.  
  110. extern USHORT scrdata_drive_width;               /* Width of the drive gadgets */
  111. extern USHORT scrdata_gadget_offset;             /* X-Offset of entire gadget display */
  112. extern USHORT scrdata_gadget_xpos;               /* X-Position of the custom gadgets */
  113. extern USHORT scrdata_gadget_ypos;               /* Y-Position of the custom gadgets */
  114. extern USHORT scrdata_gadget_width;              /* Width of the custom gadgets */
  115. extern USHORT scrdata_gadget_height;             /* Height of the custom gadgets */
  116.  
  117. extern USHORT scrdata_clock_width;               /* Width of the clock bar */
  118. extern USHORT scrdata_clock_height;              /* Height of the clock bar */
  119. extern USHORT scrdata_clock_xpos;                /* x-pos of the clock bar */
  120. extern USHORT scrdata_clock_ypos;                /* y-pos of the clock bar */
  121. extern USHORT scrdata_status_xpos;               /* X-Position of the status bar */
  122. extern USHORT scrdata_status_ypos;               /* Y-Position of the status bar */
  123. extern USHORT scrdata_status_width;              /* Width of the status bar */
  124. extern USHORT scrdata_status_height;             /* Height of the status bar */
  125. extern USHORT scrdata_diskname_width[2];         /* Width of each diskname display */
  126. extern USHORT scrdata_diskname_height;           /* Height of the diskname displays */
  127. extern USHORT scrdata_diskname_ypos;             /* Y-Position of the diskname displays */
  128. extern USHORT scrdata_diskname_xpos[2];          /* X-Position of each diskname display */
  129. extern USHORT scrdata_prop_height;               /* Height of the vertical sliders */
  130. extern USHORT scrdata_string_height;             /* Height of the path string gadgets */
  131. extern USHORT scrdata_closegad_width;            /* Width of the screen close gadget */
  132.  
  133. extern USHORT scrdata_font_xsize;                /* X-Size of the dir window font */
  134. extern USHORT scrdata_font_ysize;                /* Y-Size of the dir window font */
  135. extern USHORT scrdata_font_baseline;             /* Baseline of the dir window font */
  136.  
  137. extern UBYTE scrdata_is_pal;                     /* Indicates PAL or NTSC system */
  138. extern UBYTE scrdata_statustext_pos;             /* Status text positioning */
  139. extern LONG scrdata_old_offset_store;            /* Stored offset in directory window */
  140.  
  141. extern USHORT scrdata_xoffset;                   /* General x-offset */
  142. extern USHORT scrdata_yoffset;                   /* General y-offset */
  143. extern USHORT scrdata_width;                     /* Display width */
  144. extern USHORT scrdata_height;                    /* Display height */
  145.  
  146. /* Definitions of screen objects */
  147.  
  148. extern struct PropInfo
  149.     vert_propinfo[2],                              /* Vertical slider PropInfo */
  150.     horiz_propinfo[2],                             /* Horizontal slider PropInfo */
  151.     drive_propinfo,                                /* Drive banks slider PropInfo */
  152.     gadget_propinfo;                               /* Gadget banks slider PropInfo */
  153.  
  154. extern struct Image
  155.     vert_propimage[2],                             /* Vertical slider Image */
  156.     horiz_propimage[2],                            /* Horizontal slider Image */
  157.     drive_propimage,                               /* Drive banks slider Image */
  158.     gadget_propimage;                              /* Gadget banks slider Image */
  159.  
  160. extern struct StringExtend string_extend;        /* Path fields StringExtension */
  161. extern struct StringExtend requester_stringex;   /* Path fields StringExtension */
  162.  
  163. extern char str_pathbuffer[2][256];              /* Path fields buffers */
  164. extern char str_undobuffer[256];                 /* General undo buffer for string gads */
  165.  
  166. extern struct StringInfo                         /* Path fields StringInfos */
  167.     path_stringinfo[2];
  168.  
  169. extern struct Gadget
  170.     *main_gadgets,                                 /* Custom gadgets */
  171.     *drive_gadgets,                                /* Drive gadgets */
  172.     path_strgadget[2],                             /* Path field gadgets */
  173.     vert_propgad[2],                               /* Vertical slider gadgets */
  174.     horiz_propgad[2],                              /* Horizontal slider gadgets */
  175.     drive_propgad,                                 /* Drive banks slider gadget */
  176.     gadget_propgad,                                /* Gadget banks slider gadget */
  177.     screen_gadgets[24];                            /* General screen gadgets */
  178.  
  179. extern struct Gadget size_gadgets[];
  180.  
  181. #define SCRGAD_LEFTSTRING       0
  182. #define SCRGAD_RIGHTSTRING      1
  183. #define SCRGAD_LEFTPARENT       0
  184. #define SCRGAD_RIGHTPARENT      1
  185.  
  186. #define SCRGAD_TINYBUFFERLIST   2
  187. #define SCRGAD_TINYRESELECT     3
  188. #define SCRGAD_TINYSELECT       4
  189. #define SCRGAD_TINYAREXX        5
  190.  
  191. #define SCRGAD_TINYHELP         6
  192. #define SCRGAD_TINYERRORHELP    7
  193. #define SCRGAD_TINYFILTER       8
  194. #define SCRGAD_TINYCONFIGURE    9
  195. #define SCRGAD_TINYICONIFY     10
  196. #define SCRGAD_TINYQUIT        11
  197.  
  198. #define SCRGAD_MOVELEFT1       12
  199. #define SCRGAD_MOVELEFT2       13
  200. #define SCRGAD_MOVERIGHT1      14
  201. #define SCRGAD_MOVERIGHT2      15
  202. #define SCRGAD_MOVEUP1         16
  203. #define SCRGAD_MOVEUP2         17
  204. #define SCRGAD_MOVEDOWN1       18
  205. #define SCRGAD_MOVEDOWN2       19
  206. #define SCRGAD_BUFFERLEFT1     20
  207. #define SCRGAD_BUFFERLEFT2     21
  208. #define SCRGAD_BUFFERRIGHT1    22
  209. #define SCRGAD_BUFFERRIGHT2    23
  210.  
  211. #define SCRGAD_LEFTPROP        30
  212. #define SCRGAD_RIGHTPROP       31
  213. #define SCRGAD_LEFTHPROP       32
  214. #define SCRGAD_RIGHTHPROP      33
  215. #define SCRGAD_DRIVEPROP       34
  216. #define SCRGAD_GADGETPROP      35
  217.  
  218. extern struct Gadget iconbutpropgad;             /* Button iconify slider */
  219.  
  220. extern struct RMBGadget
  221.     mainrmbgads[7];                                /* Screen right mouse button gadgets */
  222.  
  223.  
  224. /* Click-M-Click dragging data */
  225.  
  226. extern struct VSprite drag_sprite;               /* VSprite used for dragging */
  227. extern struct Bob drag_bob;                      /* BOB used for dragging */
  228.  
  229. extern struct BitMap drag_bob_bitmap;            /* Bitmap used to render BOB */
  230. extern struct RastPort drag_bob_rastport;        /* Rastport used to render BOB */
  231.  
  232. extern PLANEPTR drag_bob_buffer;                 /* BOB buffer */
  233. extern PLANEPTR drag_bob_savebuffer;             /* BOB background save buffer */
  234.  
  235. extern struct GelsInfo drag_gelsinfo;            /* GelsInfo structure for BOB */
  236. extern struct VSprite drag_dummy_sprite1;        /* Dummy sprite 1 for GELs list */
  237. extern struct VSprite drag_dummy_sprite2;        /* Dummy sprite 2 for GELs list */
  238.  
  239. /* General screen data */
  240.  
  241. extern struct Rectangle scr_scroll_borders[2];   /* Scroll borders for dir windows */
  242.  
  243. /* Borders for gadget highlighting */
  244.  
  245. extern struct DOpusRemember *border_key;         /* Memory key for border data */
  246.  
  247. extern struct Border *gadget_sel_border;         /* Borders for main gadgets */
  248. extern struct Border *gadget_unsel_border;
  249.  
  250. extern struct Border *gadget_dog_sel_border;     /* Main gadgets with dog-ears*/
  251. extern struct Border *gadget_dog_unsel_border;
  252.  
  253. extern struct Border *drive_sel_border;          /* Borders for drive gadgets */
  254. extern struct Border *drive_unsel_border;
  255.  
  256. extern struct Border *drive_bank_sel_border;     /* Borders for the drive bank */
  257. extern struct Border *drive_bank_unsel_border;
  258.  
  259. #define MAIN_GAD_BASE   1000                     /* GadgetID base of custom gadgets */
  260.  
  261. #endif
  262.